预处理阶段
预处理器(cpp)识别以#字符开头的指令 修改源程序,比如#iclude<stdio.h>告诉预处理器读取系统头文件stdio.h的内容并把它插入程序文本中就得到另一个C程序,以 .i 为文件扩展名
编译阶段
编译器(ccl)将hello.i翻译成文本文件hello.s,它包含一个汇编程序,每条语句都以一种文本格式描述了一条低级的机器语言指令
汇编阶段
接下来汇编器(as)将hello.s翻译成机器语言指令,并将结果打包在一个二进制文件 hello.o 中
链接阶段
将程序中需要用到的函数,例如printf,从printf.o包中用链接器(ld)合并到hello.o程序中得到一个hello文件,加载到内存中交给系统执行。